package com.wufeng.sort;

/**
 * 选择排序
 * 最佳情况：T(n) = O(n2)  最差情况：T(n) = O(n2)  平均情况：T(n) = O(n2)
 * 双重循环遍历,拿着第一个遍历的index的数与其他位置比较，记录下小的数的index，把小的数交换到第一层遍历的数
 */
public class SelectionSort {
    public static int[] sort(int[] array) {
        if (array.length ==0 || array.length == 1){
            return array;
        }
        for (int i = 0; i < array.length - 1; i++) {
            int minIndex = i;
            for (int j = i + 1; j < array.length; j++) {
                if (array[minIndex] > array[j]) {
                    minIndex = j;
                }
            }
            if (minIndex != i) {
                int temp = array[i];
                array[i] = array[minIndex];
                array[minIndex] = temp;
            }
        }
        return array;
    }
}
